ヘッダーをスキップ
Oracle TimesTen In-Memory Database C開発者およびリファレンス・ガイド
リリース7.0
E05164-02
  目次へ
目次
索引へ
索引

前へ
前へ
次へ
次へ
 

グローバル・トランザクションのリカバリ

クラッシュまたは予期しない終了の後にTimesTenデータ・ストアがディスクからロードされ、リカバリが行われると、準備され、コミットされていないすべてのグローバル・トランザクションが保留中(インダウト)の状態のままになります。通常の処理は、すべてのインダウト・トランザクションの処理が解決されるまで有効になりません。次に、この解決手順を示します。

接続およびリカバリが完了すると、TimesTenは、インダウト・トランザクションを確認します。インダウト・トランザクションがない場合は、処理を通常どおり続行します。インダウト・トランザクションがある場合は、他の接続が作成されることもありますが、インダウト・トランザクションが解決されるまで、これらの接続でのすべての処理が事実上禁止されます。他のすべてのODBCまたはJDBCのコールはエラーになります。

Error 11035 - "In-doubt transactions awaiting resolution in recovery must be resolved first"

インダウト・トランザクションのリストは、xa_recover()のXAまたはJTAの実装によって取得した後、必要に応じて、XAまたはJTAのxa_commit()xa_rollback()またはxa_forget()によって処理できます。

この方法は、トランザクション・マネージャで厳密に制御された状態で動作するシステムに適しています。トランザクション・マネージャは、接続後にまずxa_recover()をコールするためです。


注意: TimesTenでは、サブスクライバへのフェイルオーバーによってグローバル・トランザクションに一貫性がなくなるため、TimesTenリソース・マネージャをレプリケートすることはできません。